import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { SharedModule } from '@/shared/shared.module';

import { UserList } from '@/entity/user/user_list.entity';
import { UserRole } from '@/entity/user/user_role.entity';
import { UserPermission } from '@/entity/user/user_permission.entity';
import { UserRoleRelation } from '@/entity/user/user_role_relation.entity';
import { UserPermissionRelation } from '@/entity/user/user_permission_relation.entity';
import { RoleDao } from '@/servers/daos/user/role.dao';
import { UserRoleDao } from '@/servers/daos/user/user-role.dao';
import { PermissionDao } from '@/servers/daos/user/permission.dao';
import { UserDao } from '@/servers/daos/user/user.dao';
import { RolePermissionDao } from '@/servers/daos/user/role-permission.dao';

import { UserController } from './controllers/user.controller';
import { UserService } from './services/user.service';
import { PermissionController } from './controllers/permission/permission.controller';
import { PermissionService } from './services/permission/permission.service';
import { RoleController } from './controllers/role/role.controller';
import { RoleService } from './services/role/role.service';





@Module({
  imports: [TypeOrmModule.forFeature([UserList, UserRole, UserPermission, UserRoleRelation, UserPermissionRelation]),
    SharedModule],
  controllers: [UserController, PermissionController, RoleController],
  providers: [UserService, PermissionService, RoleService, UserDao, RoleDao, PermissionDao, SharedModule, UserRoleDao, RolePermissionDao]
})
export class UserModule {

}
